package br.facet.bean;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import br.facet.dao.ClienteDAO;
import br.facet.dao.ProdutoDAO;
import br.facet.dao.VendaDAO;
import br.facet.pojo.Cliente;
import br.facet.pojo.Pedido;
import br.facet.pojo.Produto;
import br.facet.pojo.Venda;

@ManagedBean(name = "PedidoBean")
@RequestScoped
public class PedidoBean {
	ProdutoDAO produtoDAO = new ProdutoDAO();
	ClienteDAO clienteDAO = new ClienteDAO();
	VendaDAO vendaDAO = new VendaDAO();
	List<Pedido> itensEscolhidos = new ArrayList<Pedido>();

	private Integer idCliente;
	private Integer idProduto;
	private Integer quantidade;

	public Integer getIdProduto() {
		return idProduto;
	}

	public void setIdProduto(Integer idProduto) {
		this.idProduto = idProduto;
	}

	public Integer getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Integer quantidade) {
		this.quantidade = quantidade;
	}

	public String adicionaCollector() {
		this.idProduto = null;
		this.quantidade = null;
		return null;
	}

	public Pedido getItem() {
		Pedido venda = new Pedido();
		Produto p = null;
		try {
			p = this.produtoDAO.load(this.idProduto);
		} catch (Exception e) {
			e.printStackTrace();
		}
		venda.setProduto(p);
		venda.setQuantidade(this.quantidade);
		return venda;
	}

	public List<Pedido> getItensEscolhidos() {
		return itensEscolhidos;
	}

	public void setItensEscolhidos(List<Pedido> itensEscolhidos) {
		this.itensEscolhidos = itensEscolhidos;
	}

	public Integer getIdCliente() {
		return idCliente;
	}

	public void setIdCliente(Integer idCliente) {
		this.idCliente = idCliente;
	}

	public String concluirVenda() {
			Cliente c = this.clienteDAO.load(this.idCliente);
			Venda venda = new Venda();
			venda.setCliente(c);
			venda.setDtVenda(new Date());
			venda.setItens(this.itensEscolhidos);
			this.vendaDAO.salvar(venda);
			this.adicionaCollector();
			this.idCliente = null;
		return null;
	}
}
